package com.cloud.school.app.model;

import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.util.List;

@Data
@ApiModel("用户模型信息")
public class UserModel {
    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    private Long id;

    /**
     * 实际名称
     */
    @ApiModelProperty("实际名称")
    private String realName;

    /**
     * 学号
     */
    @ApiModelProperty("学号")
    private String stuNum;

    /**
     * 性别 0-女 1-男
     */
    @ApiModelProperty("性别 1-女 2-男")
    private Integer gender;

    /**
     * 所在学校
     */
    @ApiModelProperty("学校Id")
    private Long collegeId;

    @ApiModelProperty("学校")
    private CollegeModel collegeModel;

    /**
     * 专业
     */
    @ApiModelProperty("专业Id")
    private Long majorId;

    @ApiModelProperty("专业")
    private MajorModel majorModel;

    /**
     * 年级
     */
    @ApiModelProperty("年级")
    private String grade;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickName;

    /**
     * 手机号（登录名）
     */
    @ApiModelProperty("手机号（登录名）")
    private String cellPhoneNum;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private Long image;

    @ApiModelProperty("头像")
    private ImageModel imageModel;

    /**
     * 注册状态，1未注册，2已注册
     */
    @ApiModelProperty("注册状态，1未注册，2已注册")
    private Integer status;

    @ApiModelProperty("验证码")
    private String validateCode;

    @ApiModelProperty("头像id(用数组包装)")
    private List<Long> images;

    @ApiModelProperty("头像对象(用数组包装)")
    private List<ImageModel> imageModels;

    @ApiModelProperty("背景图")
    private String background;

    @ApiModelProperty("用户角色 1、管理员 2、一般用户")
    private Integer userRole;

    public List<Long> getImages() {
        return Lists.newArrayList(image);
    }

    public List<ImageModel> getImageModels() {
        return Lists.newArrayList(imageModel);
    }

    public void setImages(List<Long> images) {
        if (this.image == null && !CollectionUtils.isEmpty(images)) {
            this.image = images.get(0);
        }
    }
}